package com.leenmvc.core.annotation.validator;

import com.leenmvc.core.annotation.validator.groups.DeleteGroup;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 验证是否有引用该条记录的别表的数据记录
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Exist {

    /**
     * 当前主键在哪些表中被引用
     * SysUserDao.class
     *
     * @return
     */
    Class<?>[] classes();

    /**
     * 和classes互相对应
     *
     * @return
     */
    String[] fields();

    Class<?>[] groups() default DeleteGroup.class;

    String message() default "EXIST_VALID";

    /**
     * 这个变量决定了是否在验证时立即删除
     *
     * @return
     */
    boolean del() default true;

}
